#include<iostream>
#include<algorithm>
using namespace std;
int n,a[100],b[100],c[100];
float selectmid(int la,int ra,int lb,int rb)
{
    if(ra==la+1){
        return (min(max(a[la],a[ra]),max(b[lb],b[rb]))
        +max(min(a[la],a[ra]),min(b[lb],b[rb])))/2.0;
    }
    int ma=(la+ra)/2,mb=(lb+rb+1)/2;//保证长度为偶数时,ma,mb不会偏向一边;
    if(a[ma]==b[mb]) return a[ma];
    else if(a[ma]>b[mb]) return selectmid(la,ma,mb,rb);
    else return selectmid(ma,ra,lb,mb);
}
int main()
{
    int m;cin>>m;//用例数
    for(int k=1;k<=m;k++)
    {
        cin>>n;
        for(int i=1;i<=n;i++)
        cin>>a[i];
        for(int i=1;i<=n;i++)
        cin>>b[i];
        cout<<"Divide and conquer:"<<selectmid(1,n,1,n)<<endl;
        //sort验证算法
        for(int i=1;i<=n;i++)
        c[i]=a[i],c[i+n]=b[i];
        sort(c+1,c+2*n);
        cout<<"Sort to check:"<<(c[n]+c[n+1])/2.0<<endl;
    }
    return 0;
}
// 3
// 8
// 1 3 4 5 7 9 14 20
// 2 4 6 8 10 11 13 15
// 10
// 1 3 5 7 9 11 13 15 17 19
// 2 4 6 8 10 12 14 16 18 20
// 9
// 1 2 4 6 8 10 11 13 14 
// 2 3 5 6 7 12 15 17 18
